package main

import "fmt"

// 函数可变参数

func f1(a ...interface{}){	// 这里的...表示传任意个参数
	fmt.Printf("type: %T value:%v\n", a, a)
}

func main(){
	//f1()
	//f1(1)
	//f1(1,"a",true,4,5,struct{}{},[]int{1,2},[...]int{1,2,3}, map[string]int{"大大":9000})
	//f1([]int{1,3,5,7})

	var s = []interface{}{1,3,5,7,9}
	f1(s)	// type: []interface {} value:[[1 3 5 7 9]]	当成整体传
	f1(s...)	// type: []interface {} value:[1 3 5 7 9] 把{1,3,5,7,9}拆开依次传进去

}